package structral;

import java.util.HashMap;

/**
 * 结构型模式之桥接模式
 * 将抽象部分与它的实现部分分离，使他们都可以独立变化。
 * 
 * @author 关关
 *
 */

public class Bridge {
    public static void main(String[] args) {
        Phone p1=  new IPhone();
        p1.set("t",new Tel());
        p1.set("e",new Email());
        p1.drawing("t");
        p1.drawing("e");
    }
}

interface IFunc { void fill();}//手机功能接口
class Tel implements IFunc{
	public void fill(){
		System.out.println("打电话");
	}
	
}
class Email implements IFunc{
	public void fill(){
		System.out.println("发短信");
	}
}

class Phone {//手机类
    HashMap<String,IFunc> kvs = new HashMap<String,IFunc>();
    public void set(String appId,IFunc c){kvs.put(appId,c);}
    public void drawing(String key){
        kvs.get(key).fill();
    }
}
class IPhone extends Phone {}
class Sumsun extends Phone {}
